一、添加监控主机及设置
1. 创建主机
Agent 可以干一些 SNMP 无法干的事情,例如自定义监控项
snmp 相关文章:http://www.abcdocker.com/abcdocker/1376
这里我们先不着急点add
,还需要设置其他选项
点击监控模板
zabbix 监控是由 监控项
组成(cpu
使用率监控就是一个 监控项 / 内存使用率
就是一个监控项),如果是 100
台服务器就需要监控 模板
了。只需要将监控项和模板 关联
起来即可
举个例子:我们上面主机使用的是 SNMP,就可以直接搜索SNMP
。提示:有的模板需要自己定义
温馨提示:请点击下面的小add
然后在点大的。否则会出现问题哦
IPMI
如果有的话,需要在这里写上 用户名
和密码
宏定义,这个宏其实就是一个变量。我们给可以给变量附一个值
因为我们设置的是 SNMP
,SNMP
有一个团体名。并且可以设置定义
团体名是中间的abcdocker
,具体的可以看http://www.abcdocker.com/abcdocker/1376
[root@localhost ~]# cat /etc/snmp/snmpd.conf
rocommunity abcdocker 192.168.56.11
值:{$SNMP_COMMUNITY}
主机资产设置分为 3 中
1、关闭 Disabled
2、手动 Manual
3、自动 Automatic (自动代表的是你在定义监控项的时候,他有一个小箭头,勾上之后监控项的值就会填写在这里)
我们这设置好模板就可以选择add
了
等 SNMP
变绿就好了
现在的状态是用 SNMP
进行监控了,我们只是添加了一个 SNMP OS LINUX
的模板,但是出现了 4 个。这 4 个链接。可以和多个 模板
连起来用
进入监控项,下面这个菜单是过滤搜索用的
下面全都是模板
我们可以随便点击一个,这里我们新建一个监控项
点击创建
类型选择
Zabbix agent 被动
Zabbix agent (active 主动模式)
Simple check 简单检测
SNMPv1 agent ……
在 Key 这行点击 Select 可以进行选择
我们随便选择一个,例如 agent.version。查看 agent 的版本
Numeric 是无符号整数型
2. 图形说明
Configuration----hosts----Graphs
绘图靠的是 监控项
,我们可以随便打开一个看看
颜色等都是可以随意设置
3、聚合图形 screens 设置
提示 :因为咱们用的版本是 3.0 当 2.4 的时候需要在Configuration----
下面来创建screens
创建 Screens
我们创建一个 2*2
命名为test screens
的screens
然后我们点进去
点击 编辑
点击 Change
进行设置
多添加几个之后就是以下结果
二、监控案例 [自定义监控项]
例如 :我们自己添加一个监控项来进行监控当前的活动连接数nginx
安装地址:http://www.abcdocker.com/abcdocker/1376
Nginx 状态模块配置如下,过于简单不说了
[root@localhost ~]# cat /usr/local/nginx/conf/nginx.conf
listen 8080;
location /status {
stub_status on;
access_log off;
allow 192.168.56.0/24;
deny all;
}
修改 nginx
端口并重启
测试:http://192.168.56.11:8080/status
解释说明:使用 zabbix 来监控活动连接数,通过 status 状态模块为前提 , 我们现在命令取出我们想要的值,例如:
[root@localhost ~]# curl -s http://192.168.56.11:8080/status|grep Active|awk -F "[]" '{print $3}'
1
因为我们是监控他的活动连接数,他的活动连接数为1
[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/
提示: 如果想要加自定义监控项,不要在配置文件中写入,可以在 Include
里面定义的目录写上 , 只要我们写在 Include 目录下,都可以识别到
[root@linux-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node1 zabbix_agentd.d]# ls
userparameter_mysql.conf
#默认有一个 MySQL 的,我们可以参考 MySQL 的进行操作
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
#提示,前面是 key 的名称 后面的 key 的命令
UserParameter=mysql.version,mysql -V
我们自己编辑一个文件
[root@linux-node1 zabbix_agentd.d]# cat nginx.conf
UserParameter=nginx.active,/usr/bin/curl -s http://192.168.56.11:8080/status|grep Active|awk -F "[]" '{print $3}'
提示,此处配置文件的名字可以随便起
如果是多个命令可以写一个 脚本
,命令最好写 绝对路径
!这个过程其实就是我们定义监控的过程,前面是key
的名字,后面是命令
修改完配置文件之后需要重启zabbix-agent
[root@linux-node1 zabbix_agentd.d]# systemctl restart zabbix-agent
配置完成之后先在 server
端测试,是否可以获取到 agent
上的值。不要着急添加 , 我们现在只用了 1 台服务器,本机是 server 也是 agent。然后使用 zabbix-get
进行 测试
[root@linux-node1 zabbix_agentd.d]# yum list|grep zabbix
zabbix-agent.x86_64 3.0.4-1.el7@zabbix
zabbix-release.noarch 3.0-1.el7 installed
zabbix-server-mysql.x86_64 3.0.4-1.el7@zabbix
zabbix-web.noarch 3.0.4-1.el7@zabbix
zabbix-web-mysql.noarch 3.0.4-1.el7@zabbix
python-pyzabbix.noarch 0.7.3-2.el7epel
uwsgi-stats-pusher-zabbix.x86_642.0.13.1-2.el7 epel
zabbix-get.x86_64 3.0.4-1.el7zabbix
查看 zabbix_get
[root@linux-node1 zabbix_agentd.d]# yum install -y zabbix-get
zabbix-get
使用参数如下:
[root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -p 10050 -k "nginx.active"
-s 指定我们要查看的服务器
-p 端口,可以不加。默认是 10050
-k 监控项的名称(根据上面的配置来定义的)
更多参数:zabbix_get --help
错误案例:
如果出现如下错误,大致意思是拒绝连接
[root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -p 10050 -k "nginx.active"
zabbix_get [24234]: Check access restrictions in Zabbix agent configuration
解决方法:
[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server= 192.168.56.11
因为我们当时只允许本机 127.0.0.1 进行连接。所以会出现这样问题
[root@linux-node1 ~]# systemctl restart zabbix-agent
修改完配置文件都要 重启
提示: zabbix-agent 的配置文件中指定允许那个 server 连接,那个才可以进行连接。
[root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -p 10050 -k "nginx.active"
1
正确结果如上!
提示:如果在 zabbix-agent
上面修改了,还需要在网页上进行修改
在 /etc/zabbix/zabbix-agent.conf
上面指定的 Server
是谁,就只会允许谁通过。如果有多个 ip
可以使用逗号进行分割
添加 item
找到一个安装zabbix-agent
,点击
点击items
然后添加Create item
(创建 item)
Data type:
数据类型,这里我们选择 Decimal。其他的基本上用不上
Units:
单位 超过 1 千就写成 1k 了。 可以在这里做一个单位的设置。默认就可以
Use custom multiplier:
如果这里面设置了一个数,得出来的结果都需要乘以文本框设定的值
Update interval(in sec):
监控项刷新时间间隔(一般不要低于 60 秒)
Custom intervals:
创建时间间隔(例如:1 点 -7 点每隔多少秒进行监控)格式大致为:周,时,分
History storage period:
历史数据存储时间(根据业务来设置,默认就可以)
Trend storage period:
趋势图要保存多久
New application:
监控项的组
application:
选择一个监控项组
Populates host inventory field:
资产,可以设定一个监控项。把获取的值设置在资产上面
描述!必须要写。 要不你就是不负责任
添加自定义监控项小结:
1、添加用户自定义参数(在 /etc/zabbix/zabbix.agent.d/
定义了一个 nginx.conf
步骤如上)
2、重启zabbix-agent
3、在 Server
端使用 zabbix_get
测试 获取
(命令如上)
4、在 web 界面创建item
(监控项)
自定义图形
Name:
名字
Width:
宽度
Height:
高度
Graph type:
图形类型
其他 默认 即可
然后我们点击 Add
添加 Items
监控项,找到我们刚刚设置的服务器
然后找到我们刚刚添加的 监控项
还可以选择颜色,添加其他的很多设置。不细说
点击 Prewview
可以进行预览,如果出现字符乱码可以阅读我们另一篇文章(zabbix 默认不支持中文), 确定没有问题,选择下方 Add
即可
出现我们添加的
需要在 Monitoring--->Graphs--->
选择我们添加的主机即可
接下来我们需要进行 测试
:
测试前:
使用 ab
测试工具进行测试,设置 100 万
并发进行访问
[root@linux-node1 ~]# ab -c 1000 -n 1000000 http://192.168.56.11:8080/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.56.11 (be patient)
测试后:
我们可以查看 zabbix 监控图标
我们中间设置了间隔 60 秒,说明每隔 60 秒
我们进行获取一次, 我们可以设置它的方式显示
找到 Graph
选择类型,Stacked
是堆叠显示,其他的大家可以自行百度。不细说
堆叠显示如下:
如果我们想加多个图形都显示在一张图上,可以进行如下操作
找到Graphs
找到我们设置的图形
点击添加即可
我们可以让多个图标显示在一个图片上
点击我们创建一个聚合图形(screens
)
点击进去
点击编辑
选择 item
添加的地方,因为上面创建聚合图形的时候我们选择了 2X2 所以这里会显示 2 个
找到相对应的添加即可
我们可以多添加几个
结果如上图显示
除了显示图片还可以显示其他内容
Action log:日志
Clock:时间
Data overview:数据概述
Graph:图形
History of events:历史事件
Host group issues:主机组问题
Host issues:主机问题
Hosts info:主机信息
Plain text:文本
Map:架构图
Screen:屏幕
Server info:服务器信息
Simple graph:简单的图
Simple graph prototype:简单的原型图
System status:系统状态
Triggers info:触发器信息
Tiggers overview:概述
URL:URL 地址
例如我们输入一个 URL:
我们还可以自定义一个Maps
,一张架构图。操作如下:
第二步:选择编辑Edit map
因为他默认图片比较小,我们可以点击下方,进行调整图片大小。
点击右上角 编辑
,然后我们点中图中的服务器即可
我们模拟有 2 台服务器
然后我们选中新添加的服务器进行修改
点击 Apply
就可以了。
按住 Ctrl
点中 zabbix server
和另一台服务器
然后我们点击左上方的Link
:他们就连接起来了
温馨提示:修改完成后需要点击保存 [update
] 如果不点后果就是从新在做一遍~
未完!